<?php

namespace app\common\util;
use EasyWeChat\Factory;

class WechatRefund
{
    /**
     * 微信退款功能
     * 发起退款请求 传需要的参数
     */
    public static function refund()
    {
        $config = [
            'app_id' => '',
            'mch_id' => '',
            'key' => '', // 商户支付密钥
            'secret' => '', // 商户支付密钥
            'cert_path' => '', // 证书路径
            'key_path' => '', // 密钥路径
        ];
        $app = Factory::payment($config);
        /**
         * 发起退款请求
         * $order_sn 原始订单编号
         * $refund_order_sn 退款订单编号
         * $totalFee 总额 单位/分
         * $refundFee 需要退款的金额 可以支持部分退款(例如总支付100 需要退50 此字段填写50) 单位/分
         */
        $result = $app->refund->byOutTradeNumber();
        // 处理退款结果
        if ($result['return_code'] === 'SUCCESS' && $result['result_code'] === 'SUCCESS') {
            // 退款成功

        } else {
            // 退款失败

        }
    }
}